package com.llmcu.trial.completablefuture;

import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;

public class CompletableFutureNoReturnExample {
    public static void main(String[] args) {
        // Step 1: 异步执行没有返回值的任务
        CompletableFuture<Void> future = CompletableFuture.runAsync(() -> {
            // 模拟耗时操作，比如保存数据到数据库
            try {
                Thread.sleep(2000); // 模拟2秒的延迟
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println("Task completed!");
        });

        // Step 2: 在任务完成后执行操作
        future.thenRun(() -> {
            // 任务完成后的操作
            System.out.println("Task completed, now running another task!");
        });

        // 等待所有异步任务完成
        try {
            future.get();  // 通过 .get() 等待任务完成
        } catch (InterruptedException | ExecutionException e) {
            e.printStackTrace();
        }
    }
}
